package com.shop.cloud.model.request;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.shop.cloud.model.request.RestfulRequest;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * @author Alex
 */
@ToString(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class GetGoodsListRequest extends RestfulRequest {

    private static final long serialVersionUID = -3286520204644035655L;
    
    public static final int TYPE_HONGDOU = 1;	// 鸿豆商品
    public static final int TYPE_POINTS = 2;		// 积分商品
    public static final int TYPE_REBATE = 3;		// 返利商品
    public static final int TYPE_TRAVEL = 4;		// 旅游专区
    
    public static final int STATUS_WAIT_CHECK = 0;	// 审核中
    public static final int STATUS_SELLING = 1;		// 销售中
    public static final int STATUS_REJECTED = 2;		// 审核未通过
    public static final int STATUS_CLOSED = 3;		// 已下架
    
    @JsonProperty("type")
    @ApiModelProperty(value = "商品种类,1鸿豆商品,2积分商品,3返利商品,4旅游专区", example = "", required = true)
    private int type;

    @JsonProperty("keyword")
    @ApiModelProperty(value = "商品ID或名称关键词", example = "", required = true)
    private String key;
    
    @JsonProperty("roleId")
    @ApiModelProperty(value = "所属店铺id", example = "", required = true)
    private Long roleId;
    
    @JsonProperty("openDistribution")
    @ApiModelProperty(value = "是否开启了分销，0关闭，1开启", example = "", required = true)
    private int openDistribution;
    
    @JsonProperty("status")
    @ApiModelProperty(value = "状态", example = "", required = true)
    private String status;
    
    @JsonProperty("brandId")
    @ApiModelProperty(value = "商品品牌id", example = "", required = true)
    private Long brandId;

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public Long getRoleId() {
		return roleId;
	}

	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}

	public int getOpenDistribution() {
		return openDistribution;
	}

	public void setOpenDistribution(int openDistribution) {
		this.openDistribution = openDistribution;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Long getBrandId() {
		return brandId;
	}

	public void setBrandId(Long brandId) {
		this.brandId = brandId;
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}
}
